Field
The present disclosure relates generally to an interface between a host processor and a peripheral device and, more particularly, to encoding/decoding data based on wire state changes on an interface.
Background
Manufacturers of mobile devices, such as cellular phones, may obtain components of the mobile devices from various sources, including different manufacturers. For example, an application processor in a mobile computing device may be obtained from a first manufacturer, while sensors employed by the mobile computing device may be obtained from one or more other manufacturers. Various standards-based or proprietary interfaces have been defined, typically directed to a specific application or type of application. For example, cellular telephones may use a communications interface that is compatible with or conforms to an Inter-Integrated Circuit (I2C) standard, a Serial Peripheral Interface (SPI) standard, or an Improved Inter-Integrated Circuit (I3C) standard, for example.
Currently, there is a need for increasing data throughput while reducing energy consumption on various interfaces. An exemplary concept for such data transfer protocol is based on expressing binary streams of data as framed numbers in higher level numeral systems. Some example applications implementing such data transfer protocol include I3C, camera control interface extension (CCIe), and Sensors Global Bus (SGbus).
A fundamental feature of data transfer involves transferring symbols as coefficients of larger numeral bases (e.g., base 3, 7, 8, 10, 16, etc.). A particular area of interest relates to symbols of ternary numbers. Such numbers can be implemented using a two-wire bus interface, wherein each wire has two states. Previous methods to increase data throughput while reducing energy consumption on such interface involves evaluating a correlation between the wires' physical state transitions and a related symbol. For small numeral bases (e.g., base 3), such previous methods may be efficient. However, for larger numeral bases (e.g., base 7, 8, 10, 16, etc.), the previous methods may require a significantly larger correspondence table of valued coded bits, a subtraction block, and/or a supplementary translation table translating symbols to directly usable ternary coefficients. Such requirements may be prohibitive for devices where a cost factor is important. Accordingly, there is an ongoing need for increasing data throughput on an interface that allows for a direct reading of ternary or any other larger numeral base coefficients.